/**
 * Copyright (c) 2019-2029, wwww.kiwipeach.cn (liuburu@qq.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * <p>
 * https://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package cn.kiwipeach.blog.enums;

import org.springframework.util.StringUtils;

/**
 * <code,value> 类型的枚举，用来存放系统开发时候出现的编码
 *
 * @author kiwipeach
 * @since 1.0
 */
public enum ValueEnum {
    /**
     * 线上环境
     */
    PROD("prod"),
    /**
     * 开发环境
     */
    DEV("dev"),
    ;

    private String code;

    ValueEnum(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    /**
     * 由状态码获取枚举信息
     *
     * @param code 状态码
     * @return 枚举信息
     */
    public static ValueEnum stateOf(String code) {
        if (StringUtils.isEmpty(code)) {
            throw new IllegalArgumentException("response method stateOf's args can not be empty");
        }
        for (ValueEnum rce : values()) {
            if (rce.getCode().equals(code)) {
                return rce;
            }
        }
        return null;
    }

}
